// Original file: proto/post.services.proto

import type * as grpc from '@grpc/grpc-js'
import type { MethodDefinition } from '@grpc/proto-loader'
import type { CreatePostRequest as _post_CreatePostRequest, CreatePostRequest__Output as _post_CreatePostRequest__Output } from '../post/CreatePostRequest';
import type { DeletePostRequest as _post_DeletePostRequest, DeletePostRequest__Output as _post_DeletePostRequest__Output } from '../post/DeletePostRequest';
import type { DeletePostResponse as _post_DeletePostResponse, DeletePostResponse__Output as _post_DeletePostResponse__Output } from '../post/DeletePostResponse';
import type { GetPostRequest as _post_GetPostRequest, GetPostRequest__Output as _post_GetPostRequest__Output } from '../post/GetPostRequest';
import type { ListPostsRequest as _post_ListPostsRequest, ListPostsRequest__Output as _post_ListPostsRequest__Output } from '../post/ListPostsRequest';
import type { Post as _post_Post, Post__Output as _post_Post__Output } from '../post/Post';
import type { PostResponse as _post_PostResponse, PostResponse__Output as _post_PostResponse__Output } from '../post/PostResponse';
import type { UpdatePostRequest as _post_UpdatePostRequest, UpdatePostRequest__Output as _post_UpdatePostRequest__Output } from '../post/UpdatePostRequest';

export interface PostServiceClient extends grpc.Client {
  CreatePost(argument: _post_CreatePostRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_post_PostResponse__Output>): grpc.ClientUnaryCall;
  CreatePost(argument: _post_CreatePostRequest, metadata: grpc.Metadata, callback: grpc.requestCallback<_post_PostResponse__Output>): grpc.ClientUnaryCall;
  CreatePost(argument: _post_CreatePostRequest, options: grpc.CallOptions, callback: grpc.requestCallback<_post_PostResponse__Output>): grpc.ClientUnaryCall;
  CreatePost(argument: _post_CreatePostRequest, callback: grpc.requestCallback<_post_PostResponse__Output>): grpc.ClientUnaryCall;
  createPost(argument: _post_CreatePostRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_post_PostResponse__Output>): grpc.ClientUnaryCall;
  createPost(argument: _post_CreatePostRequest, metadata: grpc.Metadata, callback: grpc.requestCallback<_post_PostResponse__Output>): grpc.ClientUnaryCall;
  createPost(argument: _post_CreatePostRequest, options: grpc.CallOptions, callback: grpc.requestCallback<_post_PostResponse__Output>): grpc.ClientUnaryCall;
  createPost(argument: _post_CreatePostRequest, callback: grpc.requestCallback<_post_PostResponse__Output>): grpc.ClientUnaryCall;
  
  DeletePost(argument: _post_DeletePostRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_post_DeletePostResponse__Output>): grpc.ClientUnaryCall;
  DeletePost(argument: _post_DeletePostRequest, metadata: grpc.Metadata, callback: grpc.requestCallback<_post_DeletePostResponse__Output>): grpc.ClientUnaryCall;
  DeletePost(argument: _post_DeletePostRequest, options: grpc.CallOptions, callback: grpc.requestCallback<_post_DeletePostResponse__Output>): grpc.ClientUnaryCall;
  DeletePost(argument: _post_DeletePostRequest, callback: grpc.requestCallback<_post_DeletePostResponse__Output>): grpc.ClientUnaryCall;
  deletePost(argument: _post_DeletePostRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_post_DeletePostResponse__Output>): grpc.ClientUnaryCall;
  deletePost(argument: _post_DeletePostRequest, metadata: grpc.Metadata, callback: grpc.requestCallback<_post_DeletePostResponse__Output>): grpc.ClientUnaryCall;
  deletePost(argument: _post_DeletePostRequest, options: grpc.CallOptions, callback: grpc.requestCallback<_post_DeletePostResponse__Output>): grpc.ClientUnaryCall;
  deletePost(argument: _post_DeletePostRequest, callback: grpc.requestCallback<_post_DeletePostResponse__Output>): grpc.ClientUnaryCall;
  
  GetPost(argument: _post_GetPostRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_post_PostResponse__Output>): grpc.ClientUnaryCall;
  GetPost(argument: _post_GetPostRequest, metadata: grpc.Metadata, callback: grpc.requestCallback<_post_PostResponse__Output>): grpc.ClientUnaryCall;
  GetPost(argument: _post_GetPostRequest, options: grpc.CallOptions, callback: grpc.requestCallback<_post_PostResponse__Output>): grpc.ClientUnaryCall;
  GetPost(argument: _post_GetPostRequest, callback: grpc.requestCallback<_post_PostResponse__Output>): grpc.ClientUnaryCall;
  getPost(argument: _post_GetPostRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_post_PostResponse__Output>): grpc.ClientUnaryCall;
  getPost(argument: _post_GetPostRequest, metadata: grpc.Metadata, callback: grpc.requestCallback<_post_PostResponse__Output>): grpc.ClientUnaryCall;
  getPost(argument: _post_GetPostRequest, options: grpc.CallOptions, callback: grpc.requestCallback<_post_PostResponse__Output>): grpc.ClientUnaryCall;
  getPost(argument: _post_GetPostRequest, callback: grpc.requestCallback<_post_PostResponse__Output>): grpc.ClientUnaryCall;
  
  ListPosts(argument: _post_ListPostsRequest, metadata: grpc.Metadata, options?: grpc.CallOptions): grpc.ClientReadableStream<_post_Post__Output>;
  ListPosts(argument: _post_ListPostsRequest, options?: grpc.CallOptions): grpc.ClientReadableStream<_post_Post__Output>;
  listPosts(argument: _post_ListPostsRequest, metadata: grpc.Metadata, options?: grpc.CallOptions): grpc.ClientReadableStream<_post_Post__Output>;
  listPosts(argument: _post_ListPostsRequest, options?: grpc.CallOptions): grpc.ClientReadableStream<_post_Post__Output>;
  
  UpdatePost(argument: _post_UpdatePostRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_post_PostResponse__Output>): grpc.ClientUnaryCall;
  UpdatePost(argument: _post_UpdatePostRequest, metadata: grpc.Metadata, callback: grpc.requestCallback<_post_PostResponse__Output>): grpc.ClientUnaryCall;
  UpdatePost(argument: _post_UpdatePostRequest, options: grpc.CallOptions, callback: grpc.requestCallback<_post_PostResponse__Output>): grpc.ClientUnaryCall;
  UpdatePost(argument: _post_UpdatePostRequest, callback: grpc.requestCallback<_post_PostResponse__Output>): grpc.ClientUnaryCall;
  updatePost(argument: _post_UpdatePostRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_post_PostResponse__Output>): grpc.ClientUnaryCall;
  updatePost(argument: _post_UpdatePostRequest, metadata: grpc.Metadata, callback: grpc.requestCallback<_post_PostResponse__Output>): grpc.ClientUnaryCall;
  updatePost(argument: _post_UpdatePostRequest, options: grpc.CallOptions, callback: grpc.requestCallback<_post_PostResponse__Output>): grpc.ClientUnaryCall;
  updatePost(argument: _post_UpdatePostRequest, callback: grpc.requestCallback<_post_PostResponse__Output>): grpc.ClientUnaryCall;
  
}

export interface PostServiceHandlers extends grpc.UntypedServiceImplementation {
  CreatePost: grpc.handleUnaryCall<_post_CreatePostRequest__Output, _post_PostResponse>;
  
  DeletePost: grpc.handleUnaryCall<_post_DeletePostRequest__Output, _post_DeletePostResponse>;
  
  GetPost: grpc.handleUnaryCall<_post_GetPostRequest__Output, _post_PostResponse>;
  
  ListPosts: grpc.handleServerStreamingCall<_post_ListPostsRequest__Output, _post_Post>;
  
  UpdatePost: grpc.handleUnaryCall<_post_UpdatePostRequest__Output, _post_PostResponse>;
  
}

export interface PostServiceDefinition extends grpc.ServiceDefinition {
  CreatePost: MethodDefinition<_post_CreatePostRequest, _post_PostResponse, _post_CreatePostRequest__Output, _post_PostResponse__Output>
  DeletePost: MethodDefinition<_post_DeletePostRequest, _post_DeletePostResponse, _post_DeletePostRequest__Output, _post_DeletePostResponse__Output>
  GetPost: MethodDefinition<_post_GetPostRequest, _post_PostResponse, _post_GetPostRequest__Output, _post_PostResponse__Output>
  ListPosts: MethodDefinition<_post_ListPostsRequest, _post_Post, _post_ListPostsRequest__Output, _post_Post__Output>
  UpdatePost: MethodDefinition<_post_UpdatePostRequest, _post_PostResponse, _post_UpdatePostRequest__Output, _post_PostResponse__Output>
}
